package come.bjpowernode.javase.reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/*
反射Method。
 */
public class ReflectTest08 {
    public static void main(String[] args)throws Exception {
        //获取类
        Class userServiceClass = Class.forName(
                "come.bjpowernode.javase.reflect.service.UserService");

        //获取所有的method
        Method[] methods = userServiceClass.getDeclaredMethods();
        System.out.println(methods.length);//2

        //遍历方法
        for(Method mt : methods){
            //获取修饰符列表
            System.out.println("修饰符列表：" + Modifier.toString(
                    mt.getModifiers()
            ));
            //获取方法的返回值类型
            System.out.println("方法的返回值类型："+mt.getReturnType().getSimpleName());
            //获取方法名
            System.out.println("方法名:" + mt.getName());
            //方法的参数
            Class[] parameterTypes = mt.getParameterTypes();
            for(Class parameterType : parameterTypes){
                System.out.println(parameterType.getSimpleName());
            }
        }
    }
}
